package com.ck.ips.dao.file;

import com.ck.common.model.FileGroup;
import com.ck.ips.model.vo.FileGroupVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @description: 素材分组dao
 * @author: zhanglei
 * @date: 2019/4/30 14:51
 */
public interface FileGroupMapper {

    /**
     * 获取文件分组总数量
     * @return
     */
    int getFileGroupTotal();

    /**
     * 获取对应的文件分组名称存在数量
     * @param groupName 文件分组名称
     * @return
     */
    int checkGroupNameExist(@Param("groupName") String groupName);

    /**
     * 新增文件分组
     * @param groupName 文件分组名称
     * @param loginUserId 登陆用户id
     * @param nowTime 当前时间戳
     */
    void addFileGroup(@Param("groupName") String groupName, @Param("loginUserId") Long loginUserId, @Param("nowTime") Long nowTime);

    /**
     * 根据文件分组id获取文件分组信息
     * @param fileGroupId 文件分组id
     * @return
     */
    FileGroup getFileGroupById(@Param("fileGroupId") Long fileGroupId);

    /**
     * 根据文件分组id修改文件分组的名称
     * @param fileGroupId 文件分组id
     * @param fileGroupName 文件分组名称
     * @param loginUserId 登陆用户id
     * @param nowTime 当前时间戳
     */
    void editFileGroup(@Param("fileGroupId") Long fileGroupId, @Param("fileGroupName") String fileGroupName, @Param("loginUserId") Long loginUserId, @Param("nowTime") Long nowTime);

    /**
     * 根据文件分组id批量删除文件分组
     * @param fileGroupIdList 文件分组id列表
     */
    void deletebyFileGroupIds(@Param("fileGroupIdList") List<String> fileGroupIdList);

    /**
     * 处理对应分组的文件，修改其文件分组为默认分组
     * @param fileGroupIdList 文件分组id列表
     */
    void updateFileDefaultGroup(@Param("fileGroupIdList") List<String> fileGroupIdList);

    /**
     * 根据id列表获取素材名称字符串
     */
    String getFileGroupNames(@Param("fileGroupIdList") List<String> fileGroupIdList);

    /**
     * 获取非api类型的所有分组信息
     * @return
     */
    List<FileGroupVO> getNotApiFileGroup();


    /**
     * 获取默认分组id
     * @return
     */
    Long getDefaultGroupId();
}
